# 命令行工具

{props.name || 'Module Federation'} 提供了轻量的命令行工具：{(props.cmdTools || ['@module-federation/enhanced', '@module-federation/modern-js']).map((cmdTool,index,arr)=>(<><code>{cmdTool}</code>{index+1===arr.length ? '':' 和 '}</>))} 。

## 查看所有命令

import React from 'react';
import ViewAllCmdsMdx from '@components/common/cli/view-all-cmds';

{/* rspress flattenMdxContent issue  */}
{props.show || React.createElement(ViewAllCmdsMdx)}

## 公共选项

{props.name || 'Module Federation'} CLI 提供了一些公共选项，可以用于所有命令：

| 选项                       | 描述                                                                                                              |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| `-c, --config <config>`    | 指定配置文件路径，可以为相对路径或绝对路径，默认值为 {props.configName ? props.configName : 'module-federation.config.ts'}      |
| `-m, --mode <mode>`        | 指定运行环境，可以选择 "dev" 或 "prod" ，默认值为 "dev" ，设置后会按照值自动往 `process.env.NODE_ENV` 环境变量注入  "development" 或 "production"   |
| `-h, --help`               | 显示命令帮助                                                                                                      |

## {props.cmd || 'mf'} dts

  <code>{props.cmd || 'mf'} dts</code>
  命令用于拉取或生成 TypeScript 类型声明文件。

import CommandInfo from '@components/common/cli/cmd-info';

{props.commandInfo || <CommandInfo />}

:::info 注意

<code>{props.cmd || 'mf'} dts</code> 命令会自动根据 <code>{props.configName || 'module-federation.config.ts'}</code> 中的配置生成或拉取类型声明文件。 这意味着你必须提供一个有效的配置文件，否则命令将无法正常运行。

如果你是只使用了 runtime API，那么你需要创建一份临时的 <code>{props.configName || 'module-federation.config.ts'}</code> 文件，配置 [dts.consumeTypes.remoteTypeUrls](../../configure/dts#remotetypeurls)，然后运行 <code>{props.cmd || 'mf'} dts</code>  命令。

:::
